The present invention relates to a method for an animation production; and, more particularly, to a method for controlling a posture of an articulated object by performing a mathematical calculation, in stead of using a numerical analysis or an optimization, in an animation production.
Recently, the Internet is commonly used as a communication network where a virtual environment can be constructed. Further, there are ever-increasing demands for developing technologies for avatars representing users in the virtual environment.
Such avatar technologies are based on the animation of human gestures that have been the center of interests in computer graphics field for a long time. Further, as the performance of computers improves, there have been widely used animations produced by using the three-dimensional graphics technologies based on the three-dimensional model of human. Particularly, the technologies for controlling the posture of an articulated object, which is based on the inverse kinematics, are very important in practice as well as in theory.
According to the prior art, the technologies for controlling the posture can be categorized into two types. One is a key-frame method based on a manual operation. The other is a method based on the inverse kinematics.
In the key-frame method, a user modifies the posture of an articulated object manually or by using an editing software tool. However, this method has a problem that the edition of the posture is time-consuming and far from intuition of the user.
Meanwhile, the inverse kinematics-based method calculates automatically an angle at each of joints of the articulated objects if a base point, an end point and a target point are set. Using the angle at each of the joints, the end point can be moved toward the target point. The inverse kinematics is more intuitive than the key-frame method. Further, the inverse kinematics is more widely used in the computer graphics field. The inverse kinematics-based method can be further categorized into several types: an analytic method based on a mathematical calculation; a numerical analysis method based on the Jacobian matrix; and a method based on an optimization.
The method based on a mathematical calculation is used only for manipulating an articulated object having two segments.
The Jacobian matrix is referred to a matrix representing rates at which the end point changes according to the changes of angles at the joints. The inverse kinematics can be realized by using a pseudo-inverse of the Jacobian matrix. However, the calculation of the pseudo-inverse of the Jacobian matrix requires differential calculus. Further, it is not guaranteed that the pseudo-inverse of the Jacobian matrix can always be found.
The method based on an optimization is to find an optimized joint angle so that the distance between the end point and the target point can be minimized. This method is also time-consuming. Also, it is not guaranteed that the optimized solution can always be found.
It is, therefore, an object of the present invention to provide a method for controlling the posture of an articulated object, which is represented in a hierarchical structure, in real time by using the inverse kinematics so that an end point moves toward a target point when a user inputs a base point, an end point and the target point being represented by each of joints of the articulated object, respectively.
In accordance with a preferred embodiment of the present invention, there is provided a method for controlling a posture of an articulated object in an animation production system, including the steps of: (a) inputting an initial configuration of the articulated object, a base point, an end point, a target point and a method for updating the posture; (b) determining whether the number of joints to be controlled between the base point and the end point is larger than or equal to three; (c) determining whether the method for updating the posture is a two-segment based or three-segment based method or another method when the number of the joints is smaller than or equal to two in the step (b); (d) determining the number of joints to be controlled between the base point and the end point when the method for updating the posture is the two-segment based or three-segment based method in the step (c); (e) performing a modification of the posture of the articulated object according to the two-segment based or three-segment based method when the number of the joints is smaller than or equal to two in the step (d); and (f) displaying the modified posture of the articulated object according to the two-segment based or three-segment based method on a screen when the modified posture thereof satisfies a predetermined terminal condition.